import { showLoadingToast, showSuccessToast, showFailToast, closeToast } from 'vant';

/**
 * Toast 工具类，用于显示不同类型的提示信息
 */
export class ToastUtil {

    /**
     * 显示加载中的提示
     * @param opts - 提示选项，可以是字符串或包含配置的对象
     */
    static loading(opts: any | string) {
        showLoadingToast(opts);
        // 清除提示，使用提供的持续时间，如果未提供则使用默认值
        this.clear(opts.duration);
    }

    /**
     * 显示成功的提示
     * @param opts - 提示选项，可以是字符串或包含配置的对象
     */
    static success(opts: any | string) {
        showSuccessToast(opts);
        // 清除提示，使用提供的持续时间，如果未提供则使用默认值
        this.clear(opts.duration);
    }

    /**
     * 显示失败的提示
     * @param opts - 提示选项，可以是字符串或包含配置的对象
     */
    static fail(opts: any | string) {
        showFailToast(opts);
        // 清除提示，使用提供的持续时间，如果未提供则使用默认值
        this.clear(opts.duration);
    }

    /**
     * 清除提示
     * @param duration - 持续时间，默认值为 1500 毫秒
     */
    static clear(duration: number = 1500) {
        setTimeout(() => {
            closeToast();
        }, duration);
    }
}